home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
printing
/
djreset.arc
/
DJ_RESET.C
< prev
next >
Wrap
C/C++ Source or Header
|
1989-06-30
|
2KB
|
81 lines
/* Reset your DeskJet Plus printer from the desktop.
Desk accessory written by Diane & Paul Close.
*/
#include <osbind.h>
#include <obdefs.h>
#include <gemdefs.h>
#define TRUE 1
#define FALSE 0
extern int gl_apid;
int menu_id, event, ret;
int xdesk, ydesk, hdesk, wdesk;
int msgbuff[8];
int BUSY;
int STATUS7;
int STATUS14;
char menusave[1520];
main()
{
int i;
char *cp;
/* initialize printer reset options */
int super();
Cconws ("\033f"); /* disable vt52 cursor */
appl_init();
menu_id = menu_register (gl_apid," DJ Reset");
wind_get (0, WF_WORKXYWH, &xdesk, &ydesk, &wdesk, &hdesk);
daloop:
event = evnt_multi (MU_MESAG,
0,0,0,0,0,0,0,0,0,0,0,0,0,
msgbuff,
0,0, &ret,&ret,&ret,&ret,&ret,&ret);
/* could have simply used evnt_mesag instead:
evnt_mesag (msgbuf); */
if ((event & MU_MESAG) == 0
|| msgbuff[0] != AC_OPEN
|| msgbuff[4] != menu_id )
goto daloop;
graf_mouse(M_OFF,0x0L);
cp = (char *) Physbase();
for (i=0; i<1520; i++)
menusave[i] = *cp++;
wind_update(TRUE);
form_dial (FMD_START,
xdesk, ydesk, wdesk, hdesk,
xdesk, ydesk, wdesk, hdesk);
/* enable vt52 cursor if needed */
/* reset dj here (call subroutine) */
Supexec(super);
/* disable vt52 cursor if on */
form_dial (FMD_FINISH,
xdesk, ydesk, wdesk, hdesk,
xdesk, ydesk, wdesk, hdesk);
wind_update (FALSE);
cp = (char *) Physbase();
for (i=0; i<1520; i++)
*cp++ = menusave[i];
graf_mouse(M_ON,0x0L);
goto daloop;
}
super() {
register unsigned char *busy;
busy=(char *)0xffffa01L;
BUSY=*busy;
busy=(char *)0xffff8800L;
*busy=7;
STATUS7=*busy;
*busy=14;
STATUS14=*busy;
STATUS14 |= 0x20;
*busy=14;
*(busy+2) = STATUS14;
}